package com.example.backed.service;

import com.example.backed.dto.CategoryRequest;
import com.example.backed.entity.Category;

import java.util.List;

public interface CategoryService {
    /**
     * 创建分类
     *
     * @param request 分类创建请求
     * @return 创建的分类信息
     */
    Category createCategory(CategoryRequest request);

    /**
     * 更新分类
     *
     * @param id 分类ID
     * @param request 分类更新请求
     * @return 更新后的分类信息
     */
    Category updateCategory(Long id, CategoryRequest request);

    /**
     * 删除分类
     *
     * @param id 分类ID
     */
    void deleteCategory(Long id);

    /**
     * 获取分类详情
     *
     * @param id 分类ID
     * @return 分类信息
     */
    Category getCategory(Long id);

    /**
     * 获取所有分类
     *
     * @return 分类列表
     */
    List<Category> listCategories();

    /**
     * 获取子分类列表
     *
     * @param parentId 父分类ID
     * @return 子分类列表
     */
    List<Category> listSubCategories(Long parentId);

    /**
     * 更新分类排序
     *
     * @param id 分类ID
     * @param sort 排序值
     * @return 是否更新成功
     */
    boolean updateSort(Long id, Integer sort);
} 